package main

import (
	"embed"
	"log"
	"net/http"
	"plugin"
)

//go:embed static
var staticFiles embed.FS

func main() {

	p, err := plugin.Open("/Users/fuqiangnian/workspace/go/lifi/thtp/myplugin.so") // 加载插件
	if err != nil {
		log.Fatal(err)
	}

	sayHelloSym, err := p.Lookup("SayHello") // 查找插件中的符号
	if err != nil {
		log.Fatal(err)
	}

	sayHello, ok := sayHelloSym.(func(string))
	if !ok {
		log.Fatalf("unexpected type for SayHello: %T", sayHelloSym)
	}

	sayHello("World") // 调用函数

	// 设置静态文件路由
	http.Handle("/", http.StripPrefix("/", http.FileServer(http.FS(staticFiles))))
	// log.Fatal(http.ListenAndServe(":8080", nil))

	//http.Handle("/", http.FileServer(http.FS(staticFiles)))
	log.Fatal(http.ListenAndServe(":8080", nil))
}
